This disclosure relates generally to packet loss recovery and, more particularly, to a method and system for Transmission Control Protocol (TCP) packet loss recovery over wireless links.
TCP/IP (Transmission Control Protocol/Internet Protocol) is a communications language or protocol that is used to allow the transfer of information in various networks. Such networks include the Internet, intranets and extranets, and wireless networks.
TCP/IP is a two-layered program. The higher layer, Transmission Control Protocol, manages the assembling of a message or file into smaller packets that are transmitted over a particular network and received by a TCP layer that reassembles the packets into the original message. The lower layer, Internet Protocol, handles the address part of each packet so that it gets to the right destination. Each source on the network checks this address to see where to forward the message. Even though some packets from the same message are routed differently than others, they are reassembled at the destination.
TCP/IP uses the client/server model of communication in which, for example, a computer user (a client) requests and is provided a service (such as sending a Web page) by another computer (a server) in the network. TCP/IP communication is primarily point-to-point, meaning each communication is from one point (or host computer) in the network to another point or host computer. TCP/IP and the higher-level applications that use it are collectively said to be xe2x80x9cconnectionlessxe2x80x9d because each client request is considered a new request unrelated to any previous one (unlike ordinary phone conversations that require a dedicated connection for the call duration). Being connectionless, network paths are free and can thus be used continuously (the TCP layer itself is not connectionless as far as any one message is concerned. Its connection remains in place until all packets in a message have been received).
The general characteristics of TCP/IP are well known to those of average skill in the art and thus will not be described further herein.
As wireless multi-media technology evolves, the need is arising to improve TCP""s performance over wireless lossy links. The wireless links are said to be lossy because, unlike wireline links, the potential for signal fading and propagation is increased. For example, TCP""s congestion control is built to handle packet loss due to congestion in the network. This congestion control works well in a wireline network but, over wireless links, there is great traffic throughput degradation because of TCP""s mechanism of handling congestion. The use of this mechanism, which is formally called slow start, congestion avoidance, and retransmission timer backoff, results in decreased throughput.
In standard TCP, congestion is indicated on timeout or on reception of duplicate acknowledgments and forces a congestion window (which contains a number of packets or segments) to have the same value for all users regardless of the optimal maximum window size. Additionally, a slow start threshold is used to increase the packet size to a particular threshold (e.g. 64 bytes). The congestion window (cwnd) and the slow start threshold (ssthresh) are two of the main variables that are used to manage the behavior of the growth for the transmission window in TCP. Initially, TCP""s congestion avoidance starts with an exponential growth for the transmission window. This is accomplished by having the cwnd initialized to a value that is less than the ssthresh. As the window grows, the cwnd is incremented exponentially until its value becomes greater than the value of the ssthresh. Once the value of the cwnd is greater than the ssthresh, the transmission window grows linearly.
Slow start is entered in the beginning of a TCP session and also as a result of congestion. A timeout causes the cwnd to be set to one. In addition, slow start initially sets the ssthresh to one half of the minimum of the current window and the receiver""s advertised window, but not less than two. The congestion window grows exponentially with the arrival of acknowledgments, until the ssthresh becomes less than the cwnd. At this stage, the congestion avoidance phase is entered.
Congestion avoidance indicates a linear growth in the congestion window. The linear growth in the cwnd is accomplished by incrementing the cwnd by one segment for every full window""s worth of acknowledged segments.
The retransmission timer follows an exponential backoff mechanism. Once the retransmission timer expires, it is restarted with a value that is twice its current timer value. A timeout occurs when the retransmission timer counts down to zero.
Another current TCP congestion mechanism is called TCP Reno which provides a fast retransmit and a fast recovery. Fast retransmit allows TCP to retransmit lost packets on receiving three duplicate acknowledgments without having to wait for the retransmission timer to expire. Three duplicate acknowledgments are interpreted to indicate a loss of the segment. In this case, the ssthresh is set to half of the minimum of the cwnd and the receiver""s advertised window. The cwnd is set to the ssthresh plus 3 times the segment size. Each time a duplicate acknowledgment is received, the cwnd is incremented by the size of one segment. Fast Recovery allows TCP to start congestion avoidance, instead of slow start, after fast retransmission allows the cwnd to be larger that ssthresh. When the first received acknowledgment for a new data segment is received, cwnd is set to the value of ssthresh. This results in the activation of the congestion avoidance algorithm.
While the theory of slow start and congestion avoidance are very effective in wireline networks, they are not effective in a wireless environment (for example, a Local Area Network (LAN)) under high Bit Error Rate (BER). Further, they do not allow TCP to send as much data as possible within a threshold that optimizes throughput while recovering from a high bit error rate on a wireless LAN link.
Typical TCP forces the congestion window to have the same value for all users regardless of the optimal maximum window size. Furthermore, this causes users with higher bandwidth demand to obtain similar throughput while recovering from a loss.
A number of prior art methods and systems for minimizing the impact of wireless losses on TCP connections will be described below. In a paper titled, xe2x80x9cI-TCP: Indirect TCP for Mobile Hostsxe2x80x9d by Bakre et al., a recommendation is made to use two TCP connections for a mobile host to obtain service with a host on the fixed side of the network. One connection is between the mobile host and the base station. The other one is between the base station and the fixed end host. The intention of I-TCP is to hide handoffs from the fixed host and transfer the connection state from the base station which is currently servicing the mobile host to the new base station which is receiving it. Another intention of I-TCP is to shield the wireline part of the network from the lossy nature of the wireless part of the network. The simulation results in I-TCP provide in some cases about twice the performance of regular TCP.
In a paper titled, xe2x80x9cA Comparison of Mechanisms for Improving TCP Performance Over Wireless Linksxe2x80x9d by Balakrishnan et al., a comparative analysis was done between several TCP proposals and the xe2x80x9cSnoopxe2x80x9d protocol, a TCP aware link layer solution. The authors recommend utilizing a link layer which leverages on TCP acknowledgments instead of generating its own. In addition, the link layer protocol could be preserved by maintaining its ability to retransmit packets locally and on a much faster time scale than TCP. When packet loss is about 10% or greater, the TCP aware link layer can help retransmit the competing packets over the link and the transport layers. The simulation indicated a 10-30% throughput gain due to the use of a link layer that is TCP aware compared to other TCP versions which use a link layer operating independently of TCP. The authors recommended the use of TCP aware link layer with selective acknowledgments to gain an optimal throughput for TCP.
While both I-TCP and Snoop have certain advantages, they are designed with the intention of minimizing the impact of wireless losses on TCP connections that are primarily wireline (only one hop in the connection is wireless and the remaining are wireline). Therefore, these solutions may not be appropriate for a fully wireless network.
In a paper titled, xe2x80x9cImproving the Start-up Behavior of a Congestion Control Scheme for TCPxe2x80x9d Hoe discusses an approach to modify the setting of the ssthresh to a value that is based on the bandwidth-delay product for a wireline environment. Initially, ssthresh was set to 64. After connection establishment, the bandwidth is calculated by using the least-squares estimation on three closely spaced acknowledgments received at the sender and their respective time of receipt. In addition, changes were made to the fast retransmit algorithm by sending a new data segment after the second duplicate acknowledgment. While these modifications are intended to avoid the wait for unnecessary timeouts, a more aggressive approach in recovering from packet losses in a wireless environment is needed.
A few internet drafts have been submitted to the Internet Engineering Task Force (IETF) standards body describing the throughput benefit of changing the initial window size to a value that is higher than one. In a paper titled, xe2x80x9cSimulation Studies of Increased Initial TCP Window Sizexe2x80x9d by Podri, et al. the initial window size is set to a value of one, three or four segments for a wireline simulation environment. The results in some cases show increased link utilization and reduced link delay with the simulation of FTP and HTTP sessions.
The Internet draft from Allman et al. titled, xe2x80x9cIncreasing TCP""s Initial Windowxe2x80x9d recommends increasing the initial window from one segment to roughly 4K. Simulation results show improved throughput of up to 30% for satellite systems. For FTP connections, a reduction in transfer time in some cases was about 10% for a small file of 16 KB. A small increase in the drop rate was indicated but the finish time of a file transfer was still reduced. The draft recommends the use of the increased initial window in short lived TCP connections and connections over links with long RTT.
While these Internet drafts have some advantages, they do not discuss optimizing a maximum window size or implementing a rate of growth in the window in a form different from TCP Reno.
Therefore, it is an object of the present invention to provide a method and system for TCP packet loss recovery over a wireless link where the packet loss is due to a high BER that overcomes the limitations described above. Such a method and system allows the exponential growth of a TCP congestion window for every acknowledgement packet that is received after a retransmission timers expires and/or three duplicate acknowledgement packets are received. A maximum amount of data is then transmitted via the exponentially growing TCP congestion window thereby optimizing and increasing packet throughput.
It is a further object of the present invention to provide a method and system for setting the congestion window to a greater amount than originally set of the maximum allowed window size.
It is a further object of the present invention to provide a method and system for, as the BER changes between low and high, automatically adjusting the congestion window size to be a variable of the maximum allowed window size and dynamically adjusting the packet size.
These objects, as well as others which will become apparent, are achieved in a system that includes mobile terminals (such as mobile phones, personal computers, laptops, etc.) wirelessly coupled to basestations in a wireless LAN network, wherein the maximum possible TCP window can be utilized to transfer data over wireless links when recovering from high BER. As such, the quality of the data and the efficiency of the network are improved.